Social networking feed extensibility based on data types

ABSTRACT

Social networking feed extensibility based on data types is described. An apparatus may comprise a custom feed system that when executed by a processor is operative to customize a social networking feed for a social networking system. The custom feed system may comprise a message reception component operative to receive a message from a client device, a message analysis component operative to determine a message type of the message based on a syntax of the message, and a message display component operative to display the message with a message display style specific to the message type of the message. Other embodiments are described and claimed.

BACKGROUND

As computers and the Internet have continued to advance insophistication, their use as a tool for social networking has increased.One such tool is aggregation services, such as social networking feeds,news feeds, message feeds, and so forth. For example, social networkingfeeds allow a user to see a list of posts, or short messages, written byothers in their social network. This allows the user to stay currentwith events, activities and conversations of other members in theirsocial network. As the use of social networking tools has grown morecommon, the desire to create more specialized social networking feedshas grown. For example, a business enterprise may desire a privatesocial networking feed to promote communication within the business.However, as will become more evident, existing tools for creating andcustomizing social networking feeds are limited. It is with respect tothese and other considerations that the present improvements have beenneeded.

SUMMARY

This Summary is provided to introduce concepts concerning managing asocial networking feed which are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Various embodiments are generally directed to techniques for customizinga social networking feed for a social networking system. Someembodiments are particularly directed to customizing a social networkingfeed based on different types of data or posts to the social networkingfeed. In one embodiment, for example, a message may be received from aclient by a server implementing a social networking system (SNS) havinga social networking feed. The social networking system may analyze themessage, and determine a message type for the message based on a givensyntax of the message. The social networking system may display themessage with a message display style specific to the message type of themessage. Different message display styles may be selected from variouspredefined templates, or custom defined using a graphic user interface.Other embodiments are described and claimed.

These and other features and advantages will be apparent from a readingof the following detailed description and a review of the associateddrawings. It is to be understood that both the foregoing generaldescription and the following detailed description are explanatory onlyand are not restrictive of aspects as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an exemplary block diagram of a system for managing asocial networking feed, according to one embodiment of the presenttechnology.

FIG. 2 depicts an exemplary diagram of a web page containing a sequenceof messages in a blog format, according to one embodiment of the presenttechnology.

FIG. 3 depicts an exemplary flowchart for a method of managing a socialnetworking feed, according to one embodiment of the present technology.

FIG. 4 depicts an exemplary diagram of a web page containing anadministration page, according to one embodiment of the presenttechnology.

FIG. 5 depicts an exemplary diagram of a computing system according toone embodiment of the present technology.

FIG. 6 depicts an exemplary diagram of a communications system accordingto one embodiment of the present technology.

DETAILED DESCRIPTION

Social networking feeds have become an increasingly popular socialnetworking tool to communicate within a social network. A socialnetworking feed aggregates messages posted by various members within agiven social network, and displays the aggregated message posts in asingle user interface view. A user may quickly scan the single view tokeep current with activities like changes in relationship status,events, and conversations with other users.

Social networking feeds, however, are still a nascent technology andsignificant improvements are needed. For instance, social networkingfeeds are generally a fairly homogeneous stream of data. All entries areformatted and presented in a uniform manner. As such, it may bedifficult for a user to find a message post of interest to the useramong the plethora of data. Existing tools for creating socialnetworking feeds tend to limit the manner in which users may distinguishtheir posts from the posts of others, and extending or customizing thesocial networking feed may be difficult for users which do not possessprogramming skills.

To solve these and other problems, various embodiments are directed toenhanced feed customization techniques designed to enhance a socialnetworking feed for a social networking system in a manner that quicklyand easily allows users and system administrators to customize variousaspects, properties, features or characteristics of a social networkingfeed. For instance, new message post types may be defined for a specificorganization or entity. By way of example, a system administrator maydefine message post types for each product manufactured or sold by abusiness enterprise, research and development group for new products,business group (e.g., accounting, legal, operations, etc.), clubs,projects, and so forth. Further, targeted functionality and customhandling rules may be defined for each message post type. For instance,each post type may have a specific rendering or presentation formatassociated with it. By way of example, a particular message post typemay have a custom icon, font, or other custom presentation or formattingparameters. In another example, certain message post types may bedisplayed for certain levels of defined relationships within a givensocial network, routed to specific social members, applications ordevices using alternative messaging transports (e.g., email, chat, SMS,MMS, etc.), filtered by message post type, sorted by message post type,and so forth. In this manner, a social networking feed may be customizedbased on different types of data received by the social networking feed.Such customization options allows a viewer to more easily scan throughthe aggregated message posts from multiple social members presented bythe social networking feed, and quickly hone in on message posts ofinterest. This also allows for rich filters and user interface views fordifferent message post types. As a result, implementation of variousenhanced feed customization techniques provides an enhanced socialnetworking feed which provides an overall improved SNS experience.

In one embodiment, for example, a message may be received from a clientby a server implementing a social networking system (SNS) providing asocial networking feed for related social members within a group (e.g.,friends). The social networking system may analyze the message, anddetermine a message type associated with the message based on a givensyntax or format of content within the message. The social networkingsystem may retrieve a message display style corresponding to the messagetype, and display the message in the social networking feed with theretrieved message display style specific to the message type of themessage. Different message display styles may be selected from variouspredefined templates, or custom defined using a custom feed graphic userinterface. In this manner, a social networking feed may be tailored andcustomized for a particular user, social network, organization, businessenterprise, group, entity or other collection of related members.

Reference will now be made in detail to embodiments of the presenttechnology for managing a social networking feed, examples of which areillustrated in the accompanying drawings. While the technology formanaging a social networking feed will be described in conjunction withvarious embodiments, it will be understood that they are not intended tolimit the present technology for managing a social networking feed tothese embodiments. On the contrary, the presented technology formanaging a social networking feed is intended to cover alternatives,modifications and equivalents, which may be included within the spiritand scope the various embodiments as defined by the appended claims.Furthermore, in the following detailed description, numerous specificdetails are set forth in order to provide a thorough understanding ofthe present technology for managing a social networking feed. However,the present technology for managing a social networking feed may bepracticed without these specific details. In other instances, well knownmethods, procedures, components, and circuits have not been described indetail as not to unnecessarily obscure aspects of the presentembodiments.

Unless specifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present detaileddescription, discussions utilizing terms such as “receiving”,“determining”, “displaying”, “specifying”, “defining”, “representing”,or the like, refer to the actions and processes of a computer system, orsimilar electronic computing device. The computer system or similarelectronic computing device manipulates and transforms data representedas physical (electronic) quantities within the computer system'sregisters and memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission, or display devices. The presenttechnology for managing a social networking feed is also well suited tothe use of other computer systems such as, for example, optical andmechanical computers. Additionally, it should be understood that inembodiments of the present technology for managing a social networkingfeed, one or more operations can be performed manually.

FIG. 1 depicts a block diagram of a custom feed system 100 designed formanaging a social networking feed, such as for a public or privatesocial networking system (SNS), for example. In the illustratedembodiment shown in FIG. 1, the custom feed system 100 includes amessage reception component 110, a message analysis component 120, amessage display component 130, an administration component 140, and adata store 150. The message reception component 110 is generallyoperative to receive a message from a client. The message analysiscomponent 120 is generally operative to determine a message type of themessage based on a syntax of the message. The message display component130 is generally operative to display the message with a message displaystyle specific to the message type of the message. The administrationcomponent 140 is generally operative to allow a user to performadministrative operations to control operation of the custom feed customfeed system 100, such as specifying rules for the message analysiscomponent 120 and the message display component 130, among others. Itmay be appreciated that these or other elements in various topologiesmay be implemented for a given set of design parameters and performanceconstraints. The embodiments are not limited in this context.

In various embodiments, the message reception component 110 may bearranged with various message interfaces capable of receiving a message102 from various applications or devices. Each message interface maycorrespond to a given message application, communications protocol, orcommunications media. The message 102 may originate from a same deviceimplementing the custom feed system 100, or a different device from adevice implementing the custom feed system 100. In one embodiment, forexample, the custom feed system 100 may be implemented by a server orserver array hosting a SNS web service. The message 102 may be receivedby the server or server array from a client device implementing variousmessage applications, such as an email application, a chat application,a short message service (SMS) application, a multimedia message service(MMS) application, a unified messaging application, a facsimileapplication, a phone application, a voicemail application, and so forth.The server and client device may communicate over a wired network, awireless network, or a combination of both. The embodiments are notlimited in this context.

In various embodiments, the message analysis component 120 may bearranged to determine a message type of the message 102 based on a givensyntax of the message. In various embodiments, the syntax of all messagetypes might comprise a keyword or punctuation symbol. A specified syntaxmay comprise a keyword or punctuation symbol that represents the messagetype. By way of example, a syntax for questions might specify that thekeyword “Question” will appear in all messages that are posed questions,or that a “?” punctuation symbol is embedded somewhere within themessage. In another example, a syntax for emphasized statements mightspecify that a keyword “Declaration” will appear in all messages thatare posed as strong statements, or that a “!” punctuation symbol isembedded somewhere within the message. In various embodiments, thesyntax of all message types might comprise a keyword or punctuationsymbol that appears at the start or end of a message. A specified syntaxmight specify a position of a keyword in a message. For example, thesyntax for questions might specify that the keyword “Question” or“Declaration” will appear at the beginning or start of the message, orthat a punctuation symbol “?” or “!” will appear at the end of themessage. Other syntax rules may be implemented, and the embodiments arenot limited to these examples.

In some cases, a specified syntax may be defined having a uniquecharacteristic that allows a higher confidence level that a message 102is of a given message type. For instance, scanning for only the word“Question” in a text of a message 102 may lead to inconsistent messagetype identification. For instance, a message 102 may have text such as“An interesting question would be whether we should enter this newfeature into our product.” The presence of the word “question” by itselfwould cause the message analysis component 120 to identify the message102 as a question message type. However, the context may indicate thatthis is a statement and not a question, thereby leading to an incorrectidentification of message type. Similarly, scanning for a punctuationsymbol by itself may lead to incorrect message type identification. Forinstance, a message 102 may have text such as “Who would have thought?”which is more a figure of speech than an actual question. As such, themessage analysis component 120 may utilize a syntax rule where a keyword or punctuation symbol needs to be unique, such as adding a colonafter the word “question.” When the message analysis component 120detects “Question:” it may lead to a more accurate determination ofmessage type for a message 102. Similarly, a syntax rule may requirepunctuation symbols in specific positions in a message 102, such as at abeginning and end of a sentence, or that multiple punctuation symbolsare used in sequence, such as “??” as a trigger. These are merely a fewexamples, and any number of custom syntax rules may be developed for aspecific implementation. The embodiments are not limited in thiscontext.

Additionally or alternatively, the message analysis component 120 mayalso determine a message type of the message 102 based on an additionalpiece of metadata embedded in the message 102 or attached to the message102. The additional metadata may be removed, made invisible, orotherwise rendered undetectable when the modified message 102 (e.g.,message 104) is posted on a social networking feed accessible by socialmembers.

In various embodiments, the message display component 130 may bearranged to present, render or display the message 102 according to amessage display style associated with a message type of the message 102as determined by the message analysis component 120. A message displaystyle may define various presentation or formatting parameters for agiven message type of the message 102. For example, a message displaystyle may define a custom logo or icon, font, font size, font color,background color, predefined text (e.g., custom words inserted before amessage post or appended after a message post), animations, video,multimedia effects, and other custom presentation or formattingparameters. For instance, a message display style might specify aparticular image for display at the beginning of a message post thatallows for the easy visual identification of messages of differentmessage types. For example, a message display style for questions mightspecify an image or icon that is representative of questions, to allowfor the easy visual identification of which messages are questionswithin a social networking feed.

In various embodiments, a message display style might further specify acommand for display with the message, so that the experience of a userviewing the message may be enhanced by providing a command that isappropriate for, or particular to, messages of that message type. Thesecommands may comprise a link or other means of initiating an action, andmay have an associated name for display to identify the command. A linkmight direct a user to a page containing more messages of the same typeor to any other page appropriate to the message type. For example, amessage display style for questions might specify a command for readingmore questions, which, when selected, opens a page showing morequestions. In various embodiments, multiple commands may be specifiedfor a message display style, the multiple commands all displayed withthe message. For example, a message display style for questions mightadditionally or alternatively specify a command for replying toquestions, which, when selected, opens a form or dialog for replying tothe question. In another example, the additional commands could beattached to the posted message or to a reply to the parent post.Different commands might appear for each. For instance, for a question,a command might be to see more related questions. For a reply to aquestion, a command might be to vote for the best answer to helpidentify the best responses. The embodiments are not limited in thiscontext.

The message display component 130 may retrieve a message display styleassociated with the message type of the message 102 from the data store150, format the message 102 in accordance with the associated messagedisplay style, and generate the message 104. The message 104 may then beposted on a social networking feed accessible by social members via aweb browser, or sent directly to a device for display by a user device(e.g., a smart phone).

In various embodiments, there may also be an optional administrationcomponent 140. The administration component 140 is operative to definecustom message types and custom message display styles. Theadministration component 140 may generate custom user interface views tofacilitate definition of custom message types and custom message displaystyles, as described in more detail with reference to FIG. 4. It shouldbe appreciated that any configuration options available to message typesmay be available to custom message types. In various embodiments, custommessage types may be associated with a custom syntax, which may specifya custom keyword that represents the custom message type. In variousembodiments, the custom message display style may specify a custom imageand a custom command for the custom message type. Custom message typedefinitions and custom message display styles may be associated with agiven message type, and stored in the data store 150.

FIG. 2 depicts an exemplary diagram of a social networking feed 200containing a sequence of messages 202 in a blog format or otheraggregation format, each message 202 displayed as a post on a blog. Forexample, each message 202 may be an embodiment of the message 104. Inone embodiment, for example, the social networking feed 200 may beaccessed as a web page via a web browser. In one embodiment, forexample, the social networking feed 200 may be accessed as a graphicaluser interface as presented by an application on a mobile device.

As illustrated in FIG. 2, the social networking feed 200 displays aseries of messages 202. The first message 202 a identifies a client (oruser) 210 a, who generated message content 220 a which was transmittedto the message reception component 110 from a client device. The message202 a may further include an image 230 a, which may be a graphic orpicture representing the client 210 a. The message 202 a may also bedisplayed with a command 240 a, which may comprise a link or other meansof initiating an action. It may be appreciated that the messages 202 mayinclude any number of artifacts (e.g., picture, link, document, etc. . .. ). In addition, a user may also be further defined by a picture,contact card, presence information, profile, and so forth. Theembodiments are not limited in this context.

In various embodiments, there may be a default message type of a message202, which may specify a specific visual rendering that may include animage or further visual attributes (e.g., font, colors, size, layout,etc. . . . ) such as a default image and a default command. In variousembodiments, the default message type may be used if the syntax of areceived message 102 does not match any other message type. In variousembodiments, the default image may be specific to the client thattransmitted the message, such as by using a profile picture or otherimage representing the client.

The second message 202 b is one example of a message using a messagetype associated with a question. In this example, the message 202 bincludes message content 220 b having a keyword 260 b “Question:”positioned at a beginning of the message content 220 b. The messageanalysis component 120 may determine that a message 102 with the text“Question” at the beginning is of a message of the question messagetype. The message display component 130 may display the message 220 bwith a message display style specific to the question message type. Inthis example, the message display style includes the image 230 b, animage associated with the question message type, which is displayed formessages of that type. Additionally or alternatively, the image 230 bmay be displayed in association with the image 250 b, which may be anicon or picture representing the client (or user) 210 b “Joanne Barnes.”In this example, the message display style also includes the command 240b, a command associated with the question message type, which isdisplayed for messages of that type. In this instance, the command 240 bis a link to a page showing more questions, but it should be appreciatedthat other commands may be associated with questions, such as, at least,a command to reply to the message or to see replies to the message. Invarious embodiments, multiple commands may be specified for a messagedisplay style, and multiple commands may also be specified for messagereplies as well.

In various embodiments, a message 220 may also be of a custom messagetype associated with a custom message display style. Users oradministrators of the social networking feed 200 may desire tohighlight, promote, or otherwise distinguish certain types of messages220 that do not already have specific message types associated withthem. For example, some of the users of the social networking feed 200may play a game called “GameHero” and wish to have a specific messagetype with a specific message display style associated with messagesrelated to that game. A user or administrator may use the administrativecomponent 140 to define a custom message type and all details associatedwith the custom message type and/or any reply messages.

Message 202 c in FIG. 2 illustrates an example of such a message. Thecustom message type may be associated with a custom keyword thatrepresents the custom message type. In this example, message content 220c may include a custom keyword 260 c as the word “GameHero:.” The custommessage type may be associated with a custom message display style thatspecifies a custom image for display with the message. In this example,the message display style includes the image 230 c, an image associatedwith the GameHero message type, which is displayed for messages of thattype. The image 230 c may be displayed in association with the image 250c, which may be an icon or picture representing the client (or user) 210c. In this example, the custom message display style also includes thecustom command 240 c, a command associated with the GameHero messagetype, which is displayed for messages of that type. In this example, thecustom command 240 c is a command to play the GameHero game, but itshould be appreciate that other custom commands may be associated with acustom message type.

FIG. 2 further depicts a user interface element 240 with a message entryarea 270 and a button 280. The message entry area 270 may allow for theentry of a message by a user, such as by typing the message into a textfield and submitting the message, such as by selecting the button 280.It should be appreciated that in the case of a web page, a client may beidentified through the use of a persistent log-in or through the use ofa field which allows the specification of the identify of a client.

It is worthy to note that the social networking feed 200 as shown inFIG. 2 may include further elements and examples as well. For instance,the social network feed 200 may include a user interface element orcommand to allow replies to a message 202. Much like a message 202, amessage reply to a message 202 may be subject to analysis using a sameor different set of message analysis rules and/or message display stylesas used for the message 202. For example, message analysis rules and/ormessage display styles may specify a specific visual rendering that mayinclude an image or further visual attributes (e.g., font, colors, size,layout, etc. . . . ) such as a default image and a default command maybe used for any reply messages associated with a given message 202.

It should be appreciated that the use of keywords as one method ofspecifying a syntax may provide a distinct advantage, as it should beappreciated that method of transmitting a message from a user or clientto the system other than a web page are envisioned. It should beappreciated that as the use of the syntax of the message to determine amessage type allows for complex display attributes to be derived from amessage written in plain text, which may be advantageous for forms ofcommunication that are entirely text-based. For example, the system mayallow for a client to submit a message through an instant message, textmessage, e-mail, or other form of communication that may contain amessage. Additionally or alternatively, implementing an extensibleschema that supports message type identification information in one ormore invisible message fields, whether added manually by a client orautomatically by an application or service, also provides an advantageof a more precise identification of message type. This may entail adesign trade-off of such factors as user convenience, system complexityand system accuracy.

The system may use identity information associated with the message toidentify the client in question and thereby attribute the message to theclient through identifiers on a web page such as 230 a, 230 b, and 230c. In the example of an instant message, identity information mightcomprise the identity associated with the instant message, such as auser account for the instant message. In the example of a text message,identity information might comprise the phone number associated with thetext message, which might be associated with a user of the socialnetworking feed. In the example of an e-mail, identity information mightcomprise the e-mail address associated with the e-mail, which might beassociated with a user of the social networking feed.

FIG. 3 depicts a logic flow 300 suitable for managing a socialnetworking feed, such as the social networking feed 200, for example.Although specific operations are disclosed in logic flow 300, suchoperations are exemplary. That is, various embodiments of the presenttechnology are well suited to performing various other operations orvariations of the operations recited in logic flow 300. It isappreciated that the operations in logic flow 300 may be performed in anorder different than presented, and that not all of the operations inlogic flow 300 may be performed.

The operations recited in logic flow 300 may be embodied ascomputer-readable and computer-executable instructions that reside, forexample, in data storage features such as a computer usable volatilememory, a computer usable non-volatile memory, and/or data storage unit.The computer-readable and computer-executable instructions may be usedto control or operate in conjunction with, for example, a processorand/or processors. Although the specific operations disclosed in logicflow 300 may be embodied as such instructions, such operations areexemplary. That is, the instructions may be well suited to performingvarious other operations or variations of the operations recited inlogic flow 300. It is appreciated that instructions embodying theoperations in logic flow 300 may be performed in an order different thanpresented, and that not all of the operations in logic flow 300 may beperformed.

In operation 310, the method begins.

In operation 320, a message is received from a client. For example,assume for the purposes of illustration that the message 102 is receivedby an appropriate message interface of the message reception component110 of the custom feed system 100 from a client device for display on aweb page generated by a SNS server. Message 220 b is an example of amessage that might be received from a client device.

In operation 330, a message type of the message is determined based on asyntax of the message. For example, the message analysis component 120may receive the message 102, and analyze a syntax for the message 102 todetermine its message type. In various embodiments, the syntax of themessage may comprise a keyword that represents the message type. Invarious embodiments, the syntax might specify the position of thekeyword in the message, such as that the keyword will appear at thebeginning or start of the message. In the continuing example, the syntaxof message 220 b is analyzed and the keyword 260 b, “Question”, isrecognized as a keyword associated with the question message type.

In operation 340, the message is displayed with a message display stylespecific to the message type of the message. For example, the messagedisplay component 130 may receive a message type for the message 102from the message analysis component 120, and use the message type tosearch the data store 150 for a message display style associated withthe message type. In various embodiments, the message display style mayspecify an image and a command. In the continuing example, the messagedisplay style specific to the question message type includes the image230 b and the command 240 b. As such, in this example, image 230 b andcommand 240 b are displayed on the web page with the message.

In operation 350, the method stops.

FIG. 4 depicts an exemplary diagram of an administration page 400,according to one embodiment of the present technology. Theadministration page 400 may be generated as a web page by a web browser,or a user interface view for an application implemented by a mobiledevice. In various embodiments, the administration page 400 may beoperative to allow administration of the social networking feed 200. Invarious embodiments, for example, the administration page 400 may beoperative to allow the creation, modification, and deletion of messagetypes and message display styles, including custom message types andcustom message display styles.

As illustrated in FIG. 4, the administration page 400 may contain anumber of fields allowing for the administration of the socialnetworking feed 200. For example, a user may wish to create a custommessage type with a custom image, a custom command, and a custom syntaxcomprising a custom keyword. As pictured, the user may enter a name forthe custom message type in field 410, enter a custom keyword in field420, enter a custom image in field 430, and enter a custom command infield 440. It should be appreciated that the fields, as pictured, mayrepresent a text entry field or more complex data entry structures thatmay, for example, be composed of multiple text entry fields or may causethe instantiation of a dialogue with the user for specifying data, suchas through a file system dialog box.

Returning to an earlier example, a user wishing to create a “GameHero”custom message type might enter the text “GameHero” into field 410,specifying a name for the custom message type.

Continuing the example, the user may enter the text “GameHero” in field420, specifying that the text “GameHero:” is the custom keywordassociated with the GameHero message type. It should be appreciated thefield 420 may be operative to allow for the entry of more complexsyntaxes for identifying message types, such as through the use ofregular expressions, and may comprise multiple entry fields which may beused to specify multiple keywords each of which may be associated withthe custom message type.

Continuing the example, the user may specify an image in field 430, suchas custom image 230 c of FIG. 2, for use as the custom image for thecustom display style associated with the GameHero message type. It willbe appreciated that field 430 may be operative to allow for the entry ofan image in a variety of manners, including, at least, specifying theURL of an image, specifying the location of a file containing the image,or by selecting one of a number of pre-prepared images that may beassigned to custom message types. Further, a user may specify morecomplex visual rendering rules than a simple image, such as specificcharacteristics of an image, multiple images, animations, image style,colors and other visual cues.

Continuing the example, the user may specify a command in field 440,such as custom command 240 c of FIG. 2, for use as the custom commandfor the custom display style associated with the GameHero message type.It will be appreciated that the field 440 may be operative to allow forthe entry of commands in a variety of manners, including, at least,specifying a URL and display text for the command. Field 440 maycomprise a plurality of fields allowing for the specification ofmultiple commands (e.g., on a message post and/or a message reply)

In some cases, after the specification of a custom message type, thecustom feed system 100 may be operative to allow for the testing of thecustom message type, such as by displaying an example message using thespecifications for the custom message type. In various embodiments, theexample may be functional, allowing for the testing of the customcommand. In various embodiments, after testing, or without testing, thesystem may be operative to store the custom message type and itsassociated data for later use.

It should be appreciated that the use of an administration page allowsfor the specification of custom message types, custom keywords, customdisplay styles, custom images, and custom commands without the use ofprogramming or coding, and without requiring use of or knowledge of aprogramming API. This may allow for the creation of custom message typesby a larger spectrum of users and administrators. Alternatively, forthose users and administrators capable of programming, a programmingplatform may be implemented with the custom feed system 100 to allowmore complex behaviors, features, and services.

FIG. 5 illustrates an embodiment of an exemplary computing architecture500 suitable for implementing various embodiments as previouslydescribed. The computing architecture 500 includes various commoncomputing elements, such as one or more processors, co-processors,memory units, chipsets, controllers, peripherals, interfaces,oscillators, timing devices, video cards, audio cards, multimediainput/output (I/O) components, and so forth. The embodiments, however,are not limited to implementation by the computing architecture 500.

As shown in FIG. 5, the computing architecture 500 comprises aprocessing unit 504, a system memory 506 and a system bus 508. Theprocessing unit 504 can be any of various commercially availableprocessors. Dual microprocessors and other multi-processor architecturesmay also be employed as the processing unit 504. The system bus 508provides an interface for system components including, but not limitedto, the system memory 506 to the processing unit 504. The system bus 508can be any of several types of bus structure that may furtherinterconnect to a memory bus (with or without a memory controller), aperipheral bus, and a local bus using any of a variety of commerciallyavailable bus architectures.

The system memory 506 may include various types of memory units, such asread-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM),Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM(SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM),electrically erasable programmable ROM (EEPROM), flash memory, polymermemory such as ferroelectric polymer memory, ovonic memory, phase changeor ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS)memory, magnetic or optical cards, or any other type of media suitablefor storing information. In the illustrated embodiment shown in FIG. 5,the system memory 506 can include non-volatile memory 510 and/orvolatile memory 512. A basic input/output system (BIOS) can be stored inthe non-volatile memory 510.

The computer 502 may include various types of computer-readable storagemedia, including an internal hard disk drive (HDD) 514, a magneticfloppy disk drive (FDD) 516 to read from or write to a removablemagnetic disk 518, and an optical disk drive 520 to read from or writeto a removable optical disk 522 (e.g., a CD-ROM or DVD). The HDD 514,FDD 516 and optical disk drive 520 can be connected to the system bus508 by a HDD interface 524, an FDD interface 526 and an optical driveinterface 528, respectively. The HDD interface 524 for external driveimplementations can include at least one or both of Universal Serial Bus(USB) and IEEE 1394 interface technologies.

The drives and associated computer-readable media provide volatileand/or nonvolatile storage of data, data structures, computer-executableinstructions, and so forth. For example, a number of program modules canbe stored in the drives and memory units 510, 512, including anoperating system 530, one or more application programs 532, otherprogram modules 534, and program data 536. The one or more applicationprograms 532, other program modules 534, and program data 536 caninclude, for example, the custom feed system 100, the message receptioncomponent 110, the message analysis component 120, the message displaycomponent 130, and the administration component 140.

A user can enter commands and information into the computer 502 throughone or more wire/wireless input devices, for example, a keyboard 538 anda pointing device, such as a mouse 540. Other input devices may includea microphone, an infra-red (IR) remote control, a joystick, a game pad,a stylus pen, touch screen, or the like. These and other input devicesare often connected to the processing unit 504 through an input deviceinterface 542 that is coupled to the system bus 508, but can beconnected by other interfaces such as a parallel port, IEEE 1394 serialport, a game port, a USB port, an IR interface, and so forth.

A monitor 544 or other type of display device is also connected to thesystem bus 508 via an interface, such as a video adaptor 546. Inaddition to the monitor 544, a computer typically includes otherperipheral output devices, such as speakers, printers, and so forth.

The computer 502 may operate in a networked environment using logicalconnections via wire and/or wireless communications to one or moreremote computers, such as a remote computer 548. The remote computer 548can be a workstation, a server computer, a router, a personal computer,portable computer, microprocessor-based entertainment appliance, a peerdevice or other common network node, and typically includes many or allof the elements described relative to the computer 502, although, forpurposes of brevity, only a memory/storage device 550 is illustrated.The logical connections depicted include wire/wireless connectivity to alocal area network (LAN) 552 and/or larger networks, for example, a widearea network (WAN) 554. Such LAN and WAN networking environments arecommonplace in offices and companies, and facilitate enterprise-widecomputer networks, such as intranets, all of which may connect to aglobal communications network, for example, the Internet.

When used in a LAN networking environment, the computer 502 is connectedto the LAN 552 through a wire and/or wireless communication networkinterface or adaptor 556. The adaptor 556 can facilitate wire and/orwireless communications to the LAN 552, which may also include awireless access point disposed thereon for communicating with thewireless functionality of the adaptor 556.

When used in a WAN networking environment, the computer 502 can includea modem 558, or is connected to a communications server on the WAN 554,or has other means for establishing communications over the WAN 554,such as by way of the Internet. The modem 558, which can be internal orexternal and a wire and/or wireless device, connects to the system bus508 via the input device interface 542. In a networked environment,program modules depicted relative to the computer 502, or portionsthereof, can be stored in the remote memory/storage device 550. It willbe appreciated that the network connections shown are exemplary andother means of establishing a communications link between the computerscan be used.

The computer 502 is operable to communicate with wire and wirelessdevices or entities using the IEEE 802 family of standards, such aswireless devices operatively disposed in wireless communication (e.g.,IEEE 802.11 over-the-air modulation techniques) with, for example, aprinter, scanner, desktop and/or portable computer, personal digitalassistant (PDA), communications satellite, any piece of equipment orlocation associated with a wirelessly detectable tag (e.g., a kiosk,news stand, restroom), and telephone. This includes at least Wi-Fi (orWireless Fidelity), WiMax, and Bluetooth™ wireless technologies. Thus,the communication can be a predefined structure as with a conventionalnetwork or simply an ad hoc communication between at least two devices.Wi-Fi networks use radio technologies called IEEE 802.11x (a, b, g,etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Finetwork can be used to connect computers to each other, to the Internet,and to wire networks (which use IEEE 802.3-related media and functions).

FIG. 6 illustrates a block diagram of an exemplary communicationsarchitecture 600 suitable for implementing various embodiments aspreviously described. The communications architecture 600 includesvarious common communications elements, such as a transmitter, receiver,transceiver, radio, network interface, baseband processor, antenna,amplifiers, filters, and so forth. The embodiments, however, are notlimited to implementation by the communications architecture 600.

As shown in FIG. 6, the communications architecture 600 comprisesincludes one or more clients 602 and servers 604. The clients 602 mayhost the clients of the present technology, and may be used to transmitthe messages of the present technology. The servers 604 may implementthe custom feed system 100. The clients 602 and the servers 604 areoperatively connected to one or more respective client data stores 608and server data stores 610 that can be employed to store informationlocal to the respective clients 602 and servers 604, such as cookiesand/or associated contextual information.

The clients 602 and the servers 604 may communicate information betweeneach other using a communication framework 606. The communicationsframework 606 may implement any well-known communications techniques,such as techniques suitable for use with packet-switched networks (e.g.,public networks such as the Internet, private networks such as anenterprise intranet, and so forth), circuit-switched networks (e.g., thepublic switched telephone network), or a combination of packet-switchednetworks and circuit-switched networks (with suitable gateways andtranslators). The clients 602 and the servers 604 may include varioustypes of standard communication elements designed to be interoperablewith the communications framework 606, such as one or morecommunications interfaces, network interfaces, network interface cards(NIC), radios, wireless transmitters/receivers (transceivers), wiredand/or wireless communication media, physical connectors, and so forth.By way of example, and not limitation, communication media includeswired communications media and wireless communications media. Examplesof wired communications media may include a wire, cable, metal leads,printed circuit boards (PCB), backplanes, switch fabrics, semiconductormaterial, twisted-pair wire, co-axial cable, fiber optics, a propagatedsignal, and so forth. Examples of wireless communications media mayinclude acoustic, radio-frequency (RF) spectrum, infrared and otherwireless media. One possible communication between a client 602 and aserver 604 can be in the form of a data packet adapted to be transmittedbetween two or more computer processes. The data packet may include acookie and/or associated contextual information, for example.

Various embodiments may be implemented using hardware elements, softwareelements, or a combination of both. Examples of hardware elements mayinclude devices, components, processors, microprocessors, circuits,circuit elements (e.g., transistors, resistors, capacitors, inductors,and so forth), integrated circuits, application specific integratedcircuits (ASIC), programmable logic devices (PLD), digital signalprocessors (DSP), field programmable gate array (FPGA), memory units,logic gates, registers, semiconductor device, chips, microchips, chipsets, and so forth. Examples of software elements may include softwarecomponents, programs, applications, computer programs, applicationprograms, system programs, machine programs, operating system software,middleware, firmware, software modules, routines, subroutines,functions, methods, procedures, software interfaces, application programinterfaces (API), instruction sets, computing code, computer code, codesegments, computer code segments, words, values, symbols, or anycombination thereof. Determining whether an embodiment is implementedusing hardware elements and/or software elements may vary in accordancewith any number of factors, such as desired computational rate, powerlevels, heat tolerances, processing cycle budget, input data rates,output data rates, memory resources, data bus speeds and other design orperformance constraints, as desired for a given implementation.

Some embodiments may comprise an article of manufacture. An article ofmanufacture may comprise a computer-readable storage medium arranged tostore logic. Examples of a computer-readable storage media include anystorage medium capable of storing electronic data, including volatilememory or non-volatile memory, removable or non-removable memory,erasable or non-erasable memory, writeable or re-writeable memory, andso forth. Examples of the logic may include various software elements,such as software components, programs, applications, computer programs,application programs, system programs, machine programs, operatingsystem software, middleware, firmware, software modules, routines,subroutines, functions, methods, procedures, software interfaces,application program interfaces (API), instruction sets, computing code,computer code, code segments, computer code segments, words, values,symbols, or any combination thereof. In one embodiment, for example, anarticle of manufacture may store executable computer programinstructions that, when executed by a computer, cause the computer toperform methods and/or operations in accordance with the describedembodiments. The executable computer program instructions may includeany suitable type of code, such as source code, compiled code,interpreted code, executable code, static code, dynamic code, and thelike. The executable computer program instructions may be implementedaccording to a predefined computer language, manner or syntax, forinstructing a computer to perform a certain function. The instructionsmay be implemented using any suitable high-level, low-level,object-oriented, visual, compiled and/or interpreted programminglanguage.

Some embodiments may be described using the expression “one embodiment”or “an embodiment” along with their derivatives. These terms mean that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment. Theappearances of the phrase “in one embodiment” in various places in thespecification are not necessarily all referring to the same embodiment.

Some embodiments may be described using the expression “coupled” and“connected” along with their derivatives. These terms are notnecessarily intended as synonyms for each other. For example, someembodiments may be described using the terms “connected” and/or“coupled” to indicate that two or more elements are in direct physicalor electrical contact with each other. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other.

It is emphasized that the Abstract of the Disclosure is provided tocomply with 37 C.F.R. Section 1.72(b), requiring an abstract that willallow the reader to quickly ascertain the nature of the technicaldisclosure. It is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, it can be seen thatvarious features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted as reflecting an intention that the claimedembodiments require more features than are expressly recited in eachclaim. Rather, as the following claims reflect, inventive subject matterlies in less than all features of a single disclosed embodiment. Thusthe following claims are hereby incorporated into the DetailedDescription, with each claim standing on its own as a separateembodiment. In the appended claims, the terms “including” and “in which”are used as the plain-English equivalents of the respective terms“comprising” and “wherein,” respectively. Moreover, the terms “first,”“second,” “third,” and so forth, are used merely as labels, and are notintended to impose numerical requirements on their objects.

Although the subject matter has been described in a language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

For example, while the subject matter has been described in reference toa social networking feed, it is to be understood that other applicationsare envisioned. Any type of message display which might benefit fromdetermining a message type by a syntax and displaying the message in amessage display style specified for that message type. For example, ane-mail, instant message, text message, or other form of electroniccommunication might contain a keyword “Question” that is associated witha message type and display style for questions. The program or devicedisplaying the e-mail, instant message, text message, or other mightthen display the message in the display style specific to questions.

1. An apparatus, comprising: a custom feed system that when executed bya processor is operative to customize a social networking feed for asocial networking system, the custom feed system comprising: a messagereception component operative to receive a message from a client device;a message analysis component operative to determine a message type ofthe message based on a syntax of the message; and a message displaycomponent operative to display the message with a message display stylespecific to the message type of the message.
 2. The system of claim 1,the syntax of the message comprising a keyword that represents themessage type.
 3. The system of claim 1, the message display style tospecify an image.
 4. The system of claim 1, the message display style tospecify a command.
 5. The system of claim 1, comprising anadministration component operative to define custom message types andcustom message display styles.
 6. The system of claim 5, the messagetype of the message comprising a custom message type.
 7. The system ofclaim 5, the syntax of the message comprising a custom keyword thatrepresents the custom message type.
 8. The system of claim 5, themessage display style to specify a custom image and a custom command forthe custom message type.
 9. The system of claim 1, the message displaycomponent operative to display the message as a post on a blog.
 10. Acomputer-implemented method of managing a social networking feed,comprising: receiving a message from a client device; determining amessage type of the message based on a syntax of the message; retrieve amessage display style associated with the message type; and display themessage with the message display style specific to the message type ofthe message.
 11. The method of claim 10, the syntax of the messagecomprising invisible metadata that represents the message type.
 12. Themethod of claim 10, the message display style to specify a visualrendering and one or more commands.
 13. The method of claim 10,comprising defining a custom message type and a custom keyword thatrepresents the custom message type.
 14. The method of claim 13, themessage type of the message comprising the custom message type and thesyntax of the message comprising the custom keyword.
 15. The method ofclaim 13, comprising specifying a custom image and a custom command forthe custom message type.
 16. An article of manufacture comprising astorage medium containing instructions that when executed cause thesystem to: receive a message from a client; determine a message type ofthe message based on a syntax of the message; and render the messagewith a message display style specific to the message type of themessage.
 17. The article of claim 16, the syntax of the messagecomprising a keyword that represents the message type.
 18. The articleof claim 16, the message comprising a message reply and the messagedisplay style for the message reply to specify a visual rendering andone or more commands.
 19. The article of claim 16, further comprisinginstructions that when executed cause the system to define a custommessage type and a custom keyword that represents the custom messagetype, the message type of the message comprising the custom message typeand the syntax of the message comprising the custom keyword.
 20. Thearticle of claim 9, further comprising instructions that when executedcause the system to specify a custom image and a custom command for thecustom message type.